package com.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.entity.CardInfo;
import com.example.utils.Result;

import java.math.BigDecimal;

/**
 * 银行卡信息服务接口
 */
public interface CardInfoService extends IService<CardInfo> {
    /**
     * 存款
     * 
     * @param cardId 卡号
     * @param amount 存款金额
     * @return 操作结果
     */
    Result<?> deposit(String cardId, BigDecimal amount);
    
    /**
     * 取款
     * 
     * @param cardId 卡号
     * @param amount 取款金额
     * @param password 密码
     * @return 操作结果
     */
    Result<?> withdraw(String cardId, BigDecimal amount, String password);
    
    /**
     * 转账
     * 
     * @param fromCardId 转出卡号
     * @param toCardId 转入卡号
     * @param amount 转账金额
     * @param password 密码
     * @return 操作结果
     */
    Result<?> transfer(String fromCardId, String toCardId, BigDecimal amount, String password);
    
    /**
     * 修改密码
     * 
     * @param cardId 卡号
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     * @return 操作结果
     */
    Result<?> changePassword(String cardId, String oldPassword, String newPassword);
    
    /**
     * 挂失
     * 
     * @param cardId 卡号
     * @return 操作结果
     */
    Result<?> reportLoss(String cardId);
    
    /**
     * 解除挂失
     * 
     * @param cardId 卡号
     * @return 操作结果
     */
    Result<?> cancelLoss(String cardId);
} 